Utility maximization problem